package com.kotlin.android.app

import android.app.Activity
import android.content.Intent
import com.android.app.api.config.ServiceConfig
import com.android.app.router.ext.AppNavigationExt
import com.google.gson.Gson
import com.kotlin.android.app.data.identifier.Extra
import com.kotlin.android.core.CoreApp

/**

 */

/**
 * 广告SP文件名称
 */
val adSPName= "${CoreApp.instance.packageName}.ad"
const val KEY_FLASH_AD = "flash_ad_obj"
const val KEY_THEATERS_AD = "theaters_ad"

/**
 * 根据scheme参数跳转到不同的页面
 * [clazz] MainActivity app启动入口
 */
fun Activity.openAppByScheme(clazz: Class<*>?) {
    val schemeQuery = ServiceConfig.instance.schemeQuery
    if (schemeQuery.isNotEmpty()) {
        if (AppNavigationExt.hasMainPage) {//如果栈中已经有首页了，直接进行跳转
            try {
                val extra = Gson().fromJson(schemeQuery, Extra::class.java)
                extra?.apply {
                    if (!jumpTo.isNullOrEmpty()) {
                        AppNavigationExt.jump(extra)
                    }
                    //跳转之后需要清除数据
                    ServiceConfig.instance.schemeQuery = ""
                }
            } catch (e: Throwable) {
                e.printStackTrace()
            }
        } else {
            clazz?.apply {
                Intent(this@openAppByScheme, clazz).apply {
                    // 冷启动需要设置flag
                    addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
                }.also {
                    startActivity(it)
                }
            }
        }
    }

}